Oh-My-Zsh一个bash的强大替代工具

1. 开始

对于一个强大而有力的工具,我是向往掌控它的。因为工欲善其事必先利其器,所以,对于传统的bash的强大而言,zsh就是更上一层楼的工具。但是zsh配置起来非常复杂,但是有这么一个工具,能够帮我们自动配置,然后我们再进行少量的个性化工作即可,那就是oh-my-zsh。它是一个牛人开发的配置工具,当然要膜拜一下了。接下来就是安装和使用它的介绍内容和学习笔记。


2. 安装

2.1. zsh的安装

首先查看系统中是否已经安装了zsh,如果已安装就直接进行下一步的操作:

1
2
3
4
5
6
7
# cat /etc/shells
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

若没有安装,则安装zsh:

  • OS X用户:一般都自带了zsh,跳过……
  • Ubuntu用户:sudo apt-get install zsh
  • RedHat用户:sudo yum install -y zsh
  • Windows用户:借助CygwinBabun可以实现

2.2. Oh-My-Zsh的安装

Oh-My-Zsh的Github项目地址:oh-my-zsh

oh-my-zsh有两种安装方式:

  • wget方式:sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
  • curl方式:sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装完成后重启终端就OK了。


3. 个性化配置

3.1. bash的配置拷贝

若是之前在bash的配置文件中有很多的配置使用,那么把其中相关配置直接拷贝到~/.zshrc中即可。

3.2. 主题设置

oh-my-zshbash最直观的不一样的地方应该就是它的主题了。不过,在配置主题之前最好先保证系统有丰富的字体,因为部分主题依赖于这些字体,安装说明安装即可。安装完成后在shell偏好设置里面选择。比如选择Meslo for Powerline系列。

切换主题只需要编辑~/.zshrc文件,找到下面这段文本:

1
2
3
4
5
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="random"

在这里配置的是随机random,自带的主题在~/.ho-my-zsh/themes里面,想用哪个就把相应的名字替换进去即可。这是一些自带主题的截图==>可以看看

如果你不满足于这些,没关系,还有扩展主题,每个主题都有详细的配置方法,按照说明去做就OK。

3.3. 插件设置

oh-my-zsh另外一个强大的地方就是插件了。自带插件在~/.oh-my-zsh/plugins目录下,想了解各个插件的功能和使用方法,只需要阅读各个插件目录下的*.plugin.zsh就可以了。比如,在终端中输入vim ~/.oh-my-zsh/plugins/git/git.plugin.zsh,你就可以看到:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Query/use custom command for `git`.
zstyle -s ":vcs_info:git:*:-all-" "command" _omz_git_git_cmd
: ${_omz_git_git_cmd:=git}
#
# Functions
#
...
alias g='git'
alias ga='git add'
alias gaa='git add --all'
alias gapa='git add --patch'
...

除了自带的插件外,还有一大波扩展插件。比如安装zsh-completions,安装方式很简单,把插件用git命令克隆到~/.oh-my-zsh/custom/plugins,然后在配置文件中按插件说明配置保存,重启终端即可。


4. 使用体验

举个例子,之前用到的删除目录的操作,rm -r [path],但是常常会忘记中间的参数是什么,现在只需要这么做:

1
2
3
4
5
# 输入 rm - , 然后按tab
rm -
-R -r -- remove directories and their contents recursively
-f -- ignore nonexistent files, never prompt
-i -- prompt before every removal

对于这种低频的操作来说非常方便,不需要再使用man来查询。

另一个很实用和贴心的地方就是,当处于Git版本控制目录下时,有版本相关信息的提示,包括当前所在分支,本地代码提交情况等,同时对git精简了很多命令。

当然,它的强大之处还要在日后的使用中慢慢体会和发现。

0%